<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		
	<script>
		/*将一条消息编码为unicode：每个字符必须编码5位数字*/
		var msg=prompt("输入一条信息");
		for(var i=0,arr=[];i<msg.length;i++){
			//将每个字符转为对应的code
			var code=msg.charCodeAt(i);
			//前面加0，通过slice（）：从第2个开始截取后面的字符
			//slice（start）：从start开始截取到末尾
			code=(100000+code+'').slice(1);
			arr.push(code);
		}
		msg=arr.join('');//将msg替换成了编码
		console.log(msg);
		
		
		/*
		 * 解码：每隔5位获取一次子字符串
		 * 将截取的5位unicode，交给string.fromCharCode(num)
		 * 可获得1个字符
		 */
		//从0开始，每隔5位遍历msg中的字符，到length结束，同时声明空数组arr
		for(var i=0,arr=[];i<msg.length;i+=5){
			//遍历过程中，截取msg中当前i位置开始，之后5个字符
			var code=msg.substr(i,5);	
			//.slice(i,i+5)
			//.subString(i,i+5)
			//将获得的5个字符传入string.fromCharCode(num)
			var char=String.fromCharCode(code);	
			//将解码后的1个字符存入数组arr中
			arr.push(char);
		}
		console.log(arr.join(''));
		
		/*统计字符串中每个字符重复的次数
		//  将当前字符作为key，判断数组中是否有相同key的元素
		
		var str="you can you do";
		//遍历str中每个字符，同时创建一个空数组
		for(var i=0,arr=[];i<str.length;i++){
			//如果arr中以当前字符为下标的元素存在
			if(arr[str[i]] !== undefined){
			//就为以当前字符为下标的元素值+1
				arr[str[i]]++;
			}else{
			//否则为arr添加以当前字符为下标的新元素，值为1,就是没有相同的元素
				arr[str[i]]=1;
			}
			
		}
		console.log(arr)
		 */
		
		/*
		 * 100米下落，每次弹起上次的一半：第n次落地经过的总距离，下次弹起的高度
		 
		var n=10;
		var h=100,up=h/2;
		for(var i=1;i<n;i++){//第一下落的100，已经在h中
			h+=up*2;//将本轮下落的总距离累加到总高度h中
			//下一次弹起的高度
			up/=2;  
		}
		console.log(h+","+up);
		*/
	</script>
	
	</head>
	<body>
		
	</body>
</html>
